#ifndef STUDENT_COMMON_H
#define STUDENT_COMMON_H
#include <iostream>
#include <string>
#include "linked_list_common.h"
using namespace std;

class student
{
private:
    // 设置四个成员变量
    int student_id;
    int student_age;
    string student_name;
    string student_address;

public:
    student() : student_id(0), student_age(0), student_name(""), student_address("") {}
    /*
     4.总结
        加const：允许临时对象绑定到引用参数，支持字符串字面量直接传递。
        不加const：非const引用不能绑定临时对象，导致编译错误。
     建议
        构造函数参数如果不需要修改，建议用const std::string&，这样既高效又兼容字符串字面量。*/
    student(int id, int age, const string &name, const string &address) : student_id(id), student_age(age), student_name(name), student_address(address) {}
    // 默认析构函数
    ~student() {}
    //  get方法
    int get_student_id() { return student_id; }
    int get_student_age() { return student_age; }
    string get_student_name() { return student_name; }
    string get_student_address() { return student_address; }
    // set方法
    void set_student_id(int id) { this->student_id = id; }
    void set_student_age(int age) { this->student_age = age; }
    void set_student_name(const string &name) { this->student_name = name; }
    void set_student_address(const string &address) { this->student_address = address; }

    // 在student_common.h中声明show_student_msg成员函数
    void show_student_msg();
};
#endif
